[新機能] AI駆動のスケーリングと最適化を備えたAmazon Redshift Serverlessが一般提供開始になったので論文ベースで解説
はじめに
AWS事業本部コンサルティング部の石川です。昨年のre:Invent 2023で発表された Amazon Redshift Serverless は、AI駆動の自動スケーリングと最適化機能が一般提供開始になりました。この新機能は、ワークロードパターンを学習し、リソースを自動的に調整することで、パフォーマンスとコスト効率を大幅に向上させます。
本日は、この新機能が従来から何がどのように改善したのかを論文を参考しながらで解説します。論文は以下になります。
AI駆動のスケーリングと最適化技術とは
Amazon Redshiftは、ワークロードの変動に自動で対応する、AI駆動の最適化技術 RAIS(Resource Allocation and Index Selection)です。
RAISは垂直・水平両方のスケーリングを可能にし、大規模なクエリに対して動的にコンピューティングリソースを提供し、ワークロードの変化に応じてウェアハウスのサイズを自動最適化します。
AI駆動のスケーリングと最適化が登場した背景
Amazon Redshiftのようにクラスターベースのモデルでは、固定のウェアハウスサイズを選択する必要があります。このモデルは、サイズが小さすぎるとクエリの実行が遅く、メモリ不足でディスクにスピルして性能が大幅に低下する可能性があります。一方、大きすぎると、過剰なリソースに対して支払いが発生してしまいます。また、変動するワークロードに対応することも困難でした。
Amazon Redshift Serverless は、クラスタを使っていない時間帯は停止したり、クエリの同時実行数に応じて自動スケーリングすることで、これまでの課題を解決しました。この戦略はスループットやコスト効率の改善には効果的でしたが、クエリの複雑さやデータ量が多いユースケースではスケーリングしないという新たな課題が顕在化しました。また、ユースケースによってはスループットではなくコストをかけてもレスポンスを優先したいというニーズに応えられていませんでした。
そこで登場したが、AI駆動のスケーリングと最適化を備えたAmazon Redshift Serverlessです。
AI駆動スケーリングと最適化の主な特長
Amazon Redshift ServerlessのAI駆動スケーリング機能によってパフォーマンスを最適化し、コストを効率的に管理することで、インテリジェントなスケーリングを実現しています。
自動スケーリング
-
ワークロードの変化に応じて、データ量、同時ユーザー数、クエリの複雑さなど、すべての主要な次元で自動的にスケーリングします。
-
クエリをサブリニア、スーパーリニア、非スケーリングの3種類に分類し、それぞれに適したスケーリング戦略を適用する
-
リソース予測、what-ifスケーリング予測、ワークロード予測の3つの予測モデルを使用して、スケーリング決定を支援する
パフォーマンスとコストの最適化
- 過去のワークロードパターンを分析し、将来のクエリパターンを予測して最適なベースキャパシティを決定する
- クエリの複雑さに応じて、ベースキャパシティ以外の追加コンピュートリソースを動的に割り当てる
- 内部テストでは、変動の大きいワークロードに対して最大10倍のコストパフォーマンス向上が示されています。
動的リソース管理
-
各クエリが実行される直前にリアルタイムで作する高速なスケーリングコントローラと、通常1日に1-2回実行されるバックグラウンドで動作するポリシーオプティマイザーの2段階で最適化を行う
-
グローバルなゼロショット予測モデルとローカルなキャッシュベースの予測モデルを組み合わせて、より正確な実行時間予測を行う
-
実際のワークロードニーズに合わせてキャパシティを調整し、過剰プロビジョニングを最小限に抑えます。
柔軟な設定
- 価格パフォーマンススライダーを使用して、コストまたはパフォーマンスのどちらを優先するかを選択できます。
- ユーザーが指定したコストとパフォーマンスのトレードオフに基づいて、リソース割り当てを最適化する
価格パフォーマンスターゲットの選択
ユーザーは価格パフォーマンススライダーを使用して、ワークロードに最適な価格パフォーマンスターゲットを選択できます[4]。
- コスト最適化: コスト削減を優先し、追加料金が発生しない範囲でスケールアップします。
- バランス(推奨): パフォーマンスとコストのバランスを取り、適度なコスト増加でパフォーマンスを向上させます。
- パフォーマンス最適化: パフォーマンスを最優先し、コストが高くなる可能性がありますが、最大のパフォーマンスを実現します。
新旧のAmazon Redshift Serverlessの比較
以下の表は、従来のAmazon Redshift Serverlessと新しいAI駆動のスケーリングと最適化を備えたバージョンの主な違いをまとめたものです。
特徴 | 従来のRedshift Serverless | AI駆動の新Redshift Serverless |
---|---|---|
スケーリングの要因 | 主にクエリのキュー時間 | データ量、同時ユーザー数、クエリの複雑さなど多要因 |
リソース管理 | 事前設定された基本RPUに基づく | ワークロードパターンを学習し、動的に調整 |
パフォーマンス最適化 | 主にクエリの同時実行性に焦点 | クエリの複雑さやデータ量に基づいて最適化 |
ユーザーコントロール | 基本RPUの設定が主 | 価格とパフォーマンスのバランスを調整可能 |
自動最適化 | Automatic Table Optimization(ATO)やAutoMV (Automated Materialized Views)、AutoWLMなど | 左記に加え、AI駆動の最適化 |
スケーリングの予測能力 | リアクティブ | AIモデルによるプロアクティブな予測 |
パフォーマンスと価格のバランス | 固定的アプローチ | 3つのモード(コスト、バランス、パフォーマンス)を提供 |
大規模クエリへの対応 | 効率的ではない | ローカル予測器とグローバルなゼロショット予測器のアンサンブル |
もっと知りたい方へ
データベース研究分野における最も重要な国際会議の1つである SIGMOD/PODS 2024 で、発表された**論文「Intelligent Scaling in Amazon Redshift」**の解説ブログです。これを読むと隅々までわかるのですが、今日はわかりやすさを重視して解説しました。
最後に
Amazon Redshift ServerlessのAI駆動スケーリングと最適化機能は、データウェアハウスの運用を大幅に簡素化し、パフォーマンスとコスト効率を向上させる機能です。
当初は、最新のRedshift Serverless を用いて、AI駆動のスケーリングと最適化を検証する予定でしたが、この機能を時間をかけて使用して、システムが特定のワークロード パターンを学習できるようにすることが推奨されており、すぐに得られる検証結果が限定的になりそうでした。また、この機能は、32 ベース RPU 未満または 512 ベース RPU を超えるワークロードには使用しないことを推奨していたため、論文をベースに解説するに至りました。
この新機能により、データ量、同時ユーザー数、クエリの複雑さなど、様々な要因に応じて自動的にリソースを調整できるようになりました。AIを活用した予測モデルとリアルタイムのスケーリングコントローラーにより、ワークロードの変化に迅速かつ効率的に対応し、過剰なプロビジョニングを最小限に抑えることが可能になりました。
さらに、価格パフォーマンススライダーを通じて、ユーザーは自身のニーズに合わせてコストとパフォーマンスのバランスを柔軟に調整できます。この機能は、特に変動の大きいワークロードに対して最大10倍のコストパフォーマンス向上を実現し、データ分析の効率を飛躍的に高める可能性を秘めています。
論文の中に今後も実際の使用結果からのフィードバックと予測モデルの継続的な改善により、さらなる進化が見込まれる技術とあったように、今後も継続的に改善を楽しみにしています。
合わせて読みたい
今後、このような機能も改善される見込みです。ご興味がある方はご覧ください。